﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Configuration;
using S2B_SCL.Dados.OBJ;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Data;
using S2B_SCL.Dados.INTF;

namespace S2B_SCL.Dados.DAO
{
    public class ClassDAOEmpresa: ClassINTFEmpresa
    {
        //referencia a connectionstring em um variável conecta.
        private string conecta = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

        public void CadastroEmpresa(Empresa empresa)
        {

            SqlConnection conexao = new SqlConnection(conecta);      
            SqlCommand comando = new SqlCommand("INSERT INTO TBEmpresa (NomeEmpresa,CNPJ,RazaoSocial,SenhaEmpresa,SiteEmpresa,EmailEmpresa) VALUES('" + empresa.NomeEmpresa +"','" +empresa.Cnpj+"','"+empresa.RazaoSocial+"','"+empresa.Senha+"','"+empresa.Site+"','"+empresa.Email+"')", conexao);
            comando.CommandType = CommandType.Text;
            


            try
            {
                conexao.Open();
                comando.ExecuteNonQuery();

            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                conexao.Close();
            }

        }






        public Empresa validaLogin(Empresa logar)
        {

            SqlConnection conexao = new SqlConnection(conecta);
            SqlCommand comando = new SqlCommand("SELECT IDEmpresa, NomeEmpresa, CNPJ, EmailEmpresa, RazaoSocial, SenhaEmpresa FROM TBEmpresa WHERE SenhaEmpresa = '"+logar.Senha+"'AND EmailEmpresa = '"+logar.Email+"'", conexao);
            conexao.Open();
            SqlDataReader dr =  comando.ExecuteReader();

             //List<Empresa> guardaEmpresa = new List<Empresa>();
             dr.Read();
             if (dr.HasRows)
             {
                 Empresa tempEmp = new Empresa();
                 tempEmp.IdEmpresa = Convert.ToInt32(dr["IDEmpresa"]);
                 tempEmp.NomeEmpresa = dr["NomeEmpresa"].ToString();
                 tempEmp.Cnpj = dr["CNPJ"].ToString();
                 tempEmp.Email = dr["EmailEmpresa"].ToString();
                 tempEmp.RazaoSocial = dr["RazaoSocial"].ToString();
                 tempEmp.Site = dr["SenhaEmpresa"].ToString();

                 conexao.Close();
                 return tempEmp;
             }
             else
             {
                 conexao.Close();
                 return null;
             }
             

        }


        public List<Curso> buscaCursosEmpresa(int idEmpresa)
        {
            SqlConnection conexao = new SqlConnection(conecta);
            SqlCommand comando = new SqlCommand("SELECT C.NomeCurso, ET.NomeEstado, A.Area, C.IDCurso FROM TBCurso C INNER JOIN TBEmpresa E ON C.IDEmpresa = E.IDEmpresa AND E.IDEmpresa ="+idEmpresa+" INNER JOIN TBEstado ET ON ET.IDEstado = C.IDEstado INNER JOIN TBArea A ON A.IDArea = C.IDArea", conexao);
            conexao.Open();
            SqlDataReader dr = comando.ExecuteReader();

            List<Curso> guardaEmpresa = new List<Curso>();
            Curso tempC;
            while (dr.Read())
            {
                tempC = new Curso();
                tempC.Nome = dr["NomeCurso"].ToString();
                tempC.Estado = dr["NomeEstado"].ToString();
                tempC.Area = dr["Area"].ToString();
                tempC.Link = "~/Paginas/CriarCursoContent.aspx?idCurso=" + dr["IDCurso"].ToString();
                guardaEmpresa.Add(tempC);
            }
            conexao.Close();
            return guardaEmpresa;
            
        }
        public int verificaEmail(string email)
        {
            SqlConnection conexao = new SqlConnection(conecta);
            SqlCommand comando = new SqlCommand("SELECT count(EmailEmpresa) FROM TBEmpresa WHERE EmailEmpresa ='"+email+"'", conexao);
            conexao.Open();

            return Convert.ToInt32(comando.ExecuteScalar());

        }
    

    }
}